/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import java.sql.Connection;
import java.util.Collection;
import modelo.Productos;

/**
 * Encargada de ejecutar la "logica de negocio"
 *
 * @author Felipe
 */
public class ProductoBean {

    private ProductoDAO dao;

    public ProductoBean(Connection conexion) {

        dao = new ProductoDAO();
        dao.setConexion(conexion);
    }

    public int insertar(Productos prod) {
        int exito = 0;

        Productos registro = dao.buscarPorNombre(prod.getNombre());
        if (registro != null) {

            exito = 1;
            return exito;
        }
        registro = dao.buscar(prod.getCodProducto());
        if (registro != null) {
            exito = 2;
            return exito;
        }
        dao.Insertar(prod);
        return exito;
    }

    public int modificar(Productos prod) {
        int exito = 0;
        Productos registro = dao.buscarPorNombre(prod.getNombre());
        if (registro != null) {
            if (!prod.getCodProducto().equals(registro.getCodProducto())) {
                exito = 1;
                return exito;
            }

        }
        dao.modificar(prod);
        return exito;
    }

    public Collection<Productos> buscarTodos() {
        Collection<Productos> produ = dao.buscarTodos();

        return produ;

    }

    public Productos buscarPorCodigo(String codigo) {
        Productos produ = dao.buscar(codigo);
        return produ;

    }

    public Productos buscarPorNombre(String nombre) {
        Productos prod;
        prod = dao.buscarPorNombre(nombre);
        return prod;
    }

    public Collection<Productos> buscarPorParteNombre(String nombre) {

        Collection<Productos> prod = dao.buscarPorParteNombre(nombre);

        return prod;
    }

    public Collection<Productos> stockBajos() {

        Collection<Productos> produ = dao.StockBajo();

        return produ;
    }

    public void eliminar(String codigo,boolean estado) {
        dao.eliminar(codigo,estado);
    }

    public Collection<Productos> buscarPorParteCodigo(String parte) {
        Collection<Productos> prod = dao.buscarPorParteCodigo(parte);

        return prod;
    }

    public Collection<Productos> buscarTodosPorCate() {
        Collection<Productos> prod = dao.buscarTodosCategoria();

        return prod;
    }

}
